package com.thread.sync;

public class TestMainSync2 {

	public static void main(String[] args) {

		final Object object1 = new Object();
		final Object object2 = new Object();
		PrintRunnableSync a = new PrintRunnableSync("a", object1, object2);
		PrintRunnableSync b = new PrintRunnableSync("b", object2, object1);
//		PrintRunnableSync c = new PrintRunnableSync("c", object1, object2);
		
		new Thread(a).start();
		new Thread(b).start();
//		new Thread(c).start();
	}

//	public static void main(String[] args) {
//		final Object object1 = new Object();
//		final Object object2 = new Object();
//		
//		final Locker lock = new Locker();
//		lock.obj1 = object1;
//		lock.obj2 = object2;
//		
//		new Thread(new Runnable() {
//			public void run() {
//				
//				synchronized (lock.obj1) {
//					System.out.println("Thread1   lock obj1");
//					
//					synchronized (lock.obj2) {
//						System.out.println("Thread1 lock obj2");
//						try {
//							Thread.sleep(3000);
//						} catch (InterruptedException e) {
//							e.printStackTrace();
//						}
//					}
//					
//					System.out.println("Thread1 unlock obj2");
//					
//					
//					//thread2
//					
//					
//					synchronized (lock.obj2) {
//						System.out.println("Thread1 lock obj2");
//						try {
//							Thread.sleep(3000);
//						} catch (InterruptedException e) {
//							e.printStackTrace();
//						}
//					}
//					System.out.println("Thread1 unlock obj2");
//					
//					int i = 10;
//					while(i > 0){
//						try {
//							System.out.println("----------");
//							i -- ;
//							Thread.sleep(1000);
//						} catch (InterruptedException e) {
//							e.printStackTrace();
//						}
//					}
//					System.out.println("Thread1  unlock obj1");
//				}
//			}
//		}).start();
//		
//		new Thread(new Runnable() {
//			
//			@Override
//			public void run() {
//				System.out.println("Thread2 start....");
//				synchronized (lock.obj2) {
//					System.out.println("Thread2 lock obj2");
//					while (true){
//						
//					}
//				}
//			}
//		}).start();
//	}
//}
//
//
//class Locker{
//	public Object obj1;
//	public Object obj2;
}